﻿<?xml version="1.0" encoding="utf-8"?>

<xsd:schema
    targetNamespace="http://metalx.org/i286/Functions/Class"
    elementFormDefault="qualified"
    xmlns="http://metalx.org/i286/Functions/Class"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="GetName">
		<xsd:annotation>
			<xsd:documentation>
				Gets the name of a class.

				Input:
				SI=Class

				Output:
				SI=Name
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	
	<xsd:element name="GetNamespace">
		<xsd:annotation>
			<xsd:documentation>
				Gets the namespace of a class.

				Input:
				SI=Class

				Output:
				SI=Namespace
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	
	<xsd:element name="GetFields">
		<xsd:annotation>
			<xsd:documentation>
				Gets the list of fields in a class.

				Input:
				SI=Class

				Output:
				SI=Fields
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetInstanceMethods">
		<xsd:annotation>
			<xsd:documentation>
				Gets the list of instance methods in a class.

				Input:
				SI=Class

				Output:
				SI=Methods
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetStaticMethods">
		<xsd:annotation>
			<xsd:documentation>
				Gets the list of static methods in a class.

				Input:
				SI=Class

				Output:
				SI=Methods
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="IsStatic">
		<xsd:annotation>
			<xsd:documentation>
				Sets the Zero Flag if the class is static.

				Input:
				SI=Class

				Output:
				ZF=IsStatic
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="FindInstanceMethod">
		<xsd:annotation>
			<xsd:documentation>
				Finds an instance method on a class by name.

				Input:
				SI=Class
				DI=MethodName

				Output:
				ZF=MethodFound
				SI=Method

				Modifies: CX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="FindStaticMethod">
		<xsd:annotation>
			<xsd:documentation>
				Finds a static method on a class by name.

				Input:
				SI=Class
				DI=MethodName

				Output:
				ZF=MethodFound
				SI=Method

				Modifies: CX SI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetMethodName">
		<xsd:annotation>
			<xsd:documentation>
				Gets the name of a method.

				Input:
				SI=Method

				Output:
				SI=Name
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetMethodEntryPoint">
		<xsd:annotation>
			<xsd:documentation>
				Gets the entry point of a method.

				Input:
				SI=Method

				Output:
				SI=EntryPoint
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="IsStaticMethod">
		<xsd:annotation>
			<xsd:documentation>
				Returns true if the specified method is static.

				Input:
				SI=Method

				Output:
				ZF=IsStatic
				
				Modifies: AX
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
</xsd:schema>
